home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / telecomm / ig214.arc / IG214.TXT < prev    next >
Text File  |  1990-05-04  |  76KB  |  1,612 lines

  1. updated: 5-4-90
  2.  
  3.                  Instant Graphics! Online Interpreter
  4.                    Copyright 1988-90 by Larry Mears
  5.                          All rights reserved.
  6.  
  7.  
  8.                  Version 2.14 by Larry Mears, Shareware
  9.                 Now with online point and click commands,
  10.                  and greater control over sound effects!
  11.  
  12.  
  13.                                  INTRO
  14.     Instant Graphics! Desk Accessory and Emulator for Interlink bring
  15. a whole new concept in online graphics and sound!  Now see TRUE
  16. online graphics and hear sound and MIDI music over the modem!  If you are
  17. tired of the bland VT52 colors that most ST BBS' offer, then you
  18. will be pleasantly surprised by the super fast graphics and sound
  19. this NEW terminal emulation unlocks!
  20.  
  21.                               INSTALLATION
  22.    Place IG.ACC in root directory of your boot drive A: or C: and
  23. select it from the menu bar to use, you have to stay in the accessory
  24. to see the graphics and hear the sound effects. The desk accessory has some
  25. features not found in the IG.EMU both have their own virtues use
  26. which best serves your needs. I use both at the same time, you need a
  27. 1mb ST or better to do that. If you only have 512K and are using the ACC
  28. with FLASH, drop all extra AUTO folder programs and ACCs.  Boot up and
  29. run FLASH  FIRST, do not select the ACC and then run FLASH.  If you do
  30. FLASH will think there isn't enough RAM. At least this is how it is on my
  31. 1040ST running a 512K ramdisk to simulate a 520ST with 512K.
  32.  
  33.    The IG.EMU loads into INTERLINK just like your ANSI or ATASCII Emulator
  34. does.  Just double click on the ??? for your "Style" of
  35. communications and away you go!  If you do this with the RECORD
  36. feature on, then it can be done automatically for you when you
  37. boot up Interlink. If using a 512K ST with Interlink remove extra AUTO
  38. folder programs, all desk ACCs and choose STARTUP parameters from Interlinks
  39. dropdown menu, set the buffer to 36K and the RS232 to 8K and save then rerun
  40. Interlink from the desktop.  This should free up enough RAM to load
  41. version 2.14.  If it still bombs do the same thing and drop the buffer
  42. by 2K each time till it'll load in properly.  Setting it to 36K should
  43. WITHOUT ANY EXTRA transfer ".TXF" protocals loaded in should do it but I may
  44. be wrong, I just tried to simulate the 512K RAM condition.  There are
  45. many good ramboards out there on the market and RAM is fairly cheap now
  46. go to a meg if you can.
  47.  
  48.                           SOME BACK GROUND
  49.         IG does VDI graphics by way of a attention command sequence,
  50. simular to a Hayes modem, and interprets one letter commands and values up
  51. to 9999.  It also does  VT-52  graphics in their standard form or
  52. with special attention commands, thus allowing VT-52 graphics by choice,
  53. if the standard escape sequences aren't used.  So what's so great about VDI?
  54. Well it means lines, circles, ovals, rectangles, fill patterns, system fonts,
  55. you can have BIG COLORED text any where on the screen.  IG with a little help
  56. from the users out there could open a new door for telecommunications.
  57. This terminal would allow better game programs to be written for FOREM's doors.
  58. Another use is bar and pie charts.  A good idea would be to have a online
  59. comic strip.  Ascii publications such as ST-REPORT could embed graphics
  60. commands into their text for illustration purposes. I might write a special
  61. IG reader for ZNET and ST-Report if they would show the interest and ask me.
  62. If you didn't read it with the IG reader then it'd just look like cryptic
  63. BASIC.  There are lot's of possibilities and if I come up with anymore good
  64. ideas for commands I'll try incorporate them into the next version.
  65.  
  66.                                  SYNTAX
  67.         IG is case sensitive.  G# gets it's attention g# does not.
  68. commands can be chained with the > character but they can not exceed one line,
  69. unless you use the _ option (IG213+) as the first digit in a number passed.
  70. In other words IG does not check for a linefeed or CR all the time, it will
  71. try to interpret it as a command, chain character, value, or value separator.
  72. Line noise will of course blow it's performance to shreds.  Any non numerical
  73. character can be used as a value separator, I suggest a comma or space. I like
  74. to use a : to separate commands when chaining but you can use any non numerical
  75. character.  If you don't use the chain character you have to have some character
  76. there anyway so why not a space, looks good and saves confusion.  When using
  77. the W command the string is ended with the @ character and if chaining the next
  78. command comes directly after the @ no separator at all. OK,  I guess you need
  79. to see some examples to study over.
  80.  
  81. Chain example:
  82.  
  83. G#I>0:s>0:g>2:k>0:
  84. G#A>3,8,1:B>0,0,639,149,1:A>1,1,1:C>2,2:B>30,15,610,134,1:
  85. G#E>4,18,0:C>3,3:W>170,35,Instant Graphics!@C>2,1:
  86. G#V>319,80,60,0,119:A>3,3,1:V>319,80,60,119,239:A>3,1,1:
  87. G#V>319,80,60,239,360:E>0,9,0:T>2,1,2:T>2,1,52:
  88. G#L>90,80,240,80:C>3,1:W>140,77,REST@
  89. G#T>2,1,51:L>390,95,540,95:W>445,92,WORK@
  90. G#L>390,60,540,60:W>445,57,PLAY@
  91. G#p>24,19:We all wish it were that way!
  92. G#k>1:t>2:t>5:I>0:s>0:g>0:
  93.  
  94. Notice the C directly after the @ in line number 3 and the colon at the end of
  95. the last line to keep the carriage return from being eaten as a value separator.
  96. If you want the carriage return and linefeed to not be present in your
  97. display use the ">" chain indicator and put a : after the last digit in the
  98. line. IG213+ allows splitting of lines with the _ character, the _ has to be
  99. used
  100. in place of the first digit in a value passed, see below.
  101.  
  102. example below, for Medium Resolution:
  103. ( This example could be shrunk in size with the & command's READ DATA option
  104.   it could elimnate all the L>'s but one. The line end points would ALL be
  105.   read from the modem THEN plotted. )
  106.  
  107.  
  108. G#s>0:I>0:k>0:g>2:
  109. G#L>206,35,225,44:L>225,44,236,112:L>236,112,226,_
  110. 169:L>226,169,206,159:L>206,159,196,92:L>196,92,206,_
  111. 35:L>206,35,226,169:L>225,44,206,159:L>236,112,196,92:
  112. G#L>411,30,433,39:L>433,39,443,106:L>443,106,432,163:
  113. G#L>432,163,411,152:L>411,152,400,86:L>400,86,411,30:
  114. G#L>411,30,432,163:L>433,39,411,152:L>443,106,400,86:
  115. G#L>329,83,334,75:L>334,75,345,80:L>345,80,350,93:
  116. G#L>350,93,350,114:L>350,114,345,121:L>345,121,334,117:
  117. G#L>334,117,329,104:L>329,104,329,83:L>288,84,293,77:
  118. G#L>293,77,304,81:L>304,81,309,94:L>309,94,309,115:
  119. G#L>309,115,304,123:L>304,123,293,118:L>293,118,288,105:
  120. G#L>288,105,288,84:L>329,83,288,84:L>288,84,273,87:
  121. G#L>273,87,283,92:L>283,92,309,94:L>309,94,350,93:
  122. G#L>350,93,365,90:L>365,90,355,85:L>355,85,329,83:
  123. G#L>329,104,288,105:L>288,105,273,108:L>273,108,283,113:
  124. G#L>283,113,309,115:L>309,115,350,114:L>350,114,365,111:
  125. G#L>365,111,355,106:L>355,106,329,104:L>345,80,304,81:
  126. G#L>304,81,283,92:L>283,92,283,113:L>283,113,304,123:
  127. G#L>304,123,345,121:L>345,121,365,111:L>365,111,365,90:
  128. G#L>365,90,345,80:L>334,75,293,77:L>293,77,273,87:
  129. G#L>273,87,273,108:L>273,108,293,118:L>293,118,334,117:
  130. G#L>334,117,355,106:L>355,106,355,85:L>355,85,334,75:
  131. G#L>278,90,283,103:L>283,103,278,111:L>278,111,273,98:
  132. G#L>273,98,278,90:L>257,90,262,103:L>262,103,257,111:
  133. G#L>257,111,252,98:L>252,98,257,90:L>278,90,257,90:
  134. G#L>283,103,262,103:L>278,111,257,111:L>273,98,252,98:
  135. G#L>360,87,365,100:L>365,100,360,108:L>360,108,355,95:
  136. G#L>355,95,360,87:L>381,87,386,100:L>386,100,381,107:
  137. G#L>381,107,375,95:L>375,95,381,87:L>360,87,381,87:
  138. G#L>365,100,386,100:L>360,108,381,107:L>355,95,375,95:
  139. G#L>257,94,261,102:L>261,102,257,108:L>257,108,254,99:
  140. G#L>254,99,257,94:L>236,95,240,103:L>240,103,237,108:
  141. G#L>237,108,233,100:L>233,100,236,95:L>257,94,236,95:
  142. G#L>261,102,240,103:L>257,108,237,108:L>254,99,233,100:
  143. G#L>381,90,384,99:L>384,99,381,104:L>381,104,377,96:
  144. G#L>377,96,381,90:L>401,90,405,98:L>405,98,401,103:
  145. G#L>401,103,398,95:L>398,95,401,90:L>381,90,401,90:
  146. G#L>384,99,405,98:L>381,104,401,103:L>377,96,398,95:
  147. G#L>236,98,238,102:L>238,102,237,105:L>237,105,235,101:
  148. G#L>235,101,236,98:L>216,99,217,103:L>217,103,216,105:
  149. G#L>216,105,214,101:L>214,101,216,99:L>236,98,216,99:
  150. G#L>238,102,217,103:L>237,105,216,105:L>235,101,214,101:
  151. G#L>401,93,403,97:L>403,97,401,100:L>401,100,399,96:
  152. G#L>399,96,401,93:L>422,93,423,97:L>423,97,422,99:
  153. G#L>422,99,420,95:L>420,95,422,93:L>401,93,422,93:
  154. G#L>403,97,423,97:L>401,100,422,99:L>399,96,420,95:
  155. G#t>5:k>1:I>0:s>0:g>0:
  156.  
  157.  
  158. You can execute commands on fly in the same line by having several G#'s.
  159.  
  160. G#v 1:Turn inverse video on G#v 0:and back off.
  161.  
  162. Notice the space between the command and the number, meaning don't chain and
  163. the colon after the numbers.  The colon will be eaten by the routine that gets
  164. numbers from the modem. It has to know when to quit and any non numerical
  165. character gets swallowed. A colon after the commands parameters are passed
  166. looks good anyway, right?  Shades of BASIC huh?  Also the commands are
  167. case sensitive.  A  w  is a totally different command than  W ,  so be careful.
  168.  
  169.  
  170.   There is a pause command called  t   lets you
  171. pause a screen, it sends a ^S^S times it and then sends a ^Q^Q.  Good for
  172. messages with multiple screens or long graphic welcome bulletins.
  173.  
  174. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  175.    I'd like sysop support spreading this program around and a little hype,
  176. also would be nice if the SYSOPs\USERs would send a appreciation of fee
  177. $15 to say thanks for such a innovative piece of software.  I'm not forcing
  178. anyone to do it but it would help keep me encouraged and enthusiastic toward
  179. providing updates and bug fixes.
  180. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  181.  
  182.  
  183.  
  184.     Report bugs and comments to:
  185.  
  186.         ( IG online graphics interpreter author, write me a letter or
  187.           send EMAIL to Larry Mears at FNET node 74 )  Don't be to hard
  188.           on me I have many many many months into this project and
  189.           made very little from it, actually it is a loss money wise.
  190.           Don't be to picky but if you do find a bug capture the IG script
  191.           that caused it with the graphics OFF then send it to me on disk or
  192.           upload it to WRB 205-837-2025.  You could upload it into a EMAIL
  193.           message if you like. Be sure to include a explaination of the bug
  194.           as it may not be apparent to me, it may be a syntax error or
  195.           something like that.  Oh, need to know it is was the EMU or ACC
  196.           and how much memory you have, what AUTO folder programs you run
  197.           and other ACCs.
  198.  
  199.                     Larry Mears
  200.                 11027 Crestfield Dr.
  201.                 Huntsville, Alabama
  202.                           35803 USA
  203.  
  204.  
  205. ( Authors of IG "b command options 0-18" and 1st implementation of IG
  206.   interfacing to Interlink, drop us a message.)
  207.  
  208.        also check out their:
  209.                INSTANT GRAPHICS AND SOUND EDITOR
  210.             Copyright 1989 Kevin Moody and Anthony Rau
  211.  
  212.                   Kevin Moody and Anthony Rau, Node 436
  213.                   The Final Frontier BBS (904)-282-3623
  214.                      a  Official IG support BBS.
  215.  
  216. I'll try to fix bugs if I can but, I can not guarantee a fix and I
  217. will not be held responsible for any problems caused by use of this software.
  218.  
  219. Just use Flash's or InterLink's buffer(unfiltered mode) to edit the graphic
  220. files.  The Moody/Rau IGS editor is sort of like a paint program and worth
  221. having, a guy with a understanding of IG and a text editor can out do the
  222. IGS editor it is still great for doing CURVES or doing simple BBS menus.
  223. A IG programmer can always go in there and tweak the IG script with a text
  224. editor to soup up performance. Look for IGS_PRO6.ARC on GENIE.  It produces
  225. IG script compatible with IG212 and above.  New IG versions are written so
  226. that old IG script files are compatible.  The IGS editor is a SEPERATE
  227. Shareware project from the IG EMULATOR and ACC, supporting the editor does
  228. not support the IG terminal and vice versa.
  229.  
  230. Note that a ^C executed when IG is writing it's prompts will crash or exit
  231. the program, this could be fixed at the cost of several K of memory by using
  232. printf instead of Cconws, but memory is tight for half meg users.
  233. ============================================================================
  234.  
  235.                       KEYBOARD COMMANDS for IG.ACC
  236.                       ----------------------------
  237.  
  238.                              FUNCTION KEYS
  239.  
  240. F10 cut graphics off ....Allows online entry of graphic commands.
  241. F9  cut graphics on  ....Executes any graphics commands from the modem.
  242.  
  243.      Important!  Default mode is graphics on.
  244.      If typing in a graphics message on a BBS push F10 first.
  245.      To view it push F9 and tell the BBS to list the message.
  246.      Do not use ^S and ^Q while graphics commands are executing!
  247.  
  248. F8  execute from file....Read a text file execute imbedded graphics commands.
  249.                           This allows off line composing.
  250.  
  251. F7  read file only   ....Read a text file ignore graphics commands.
  252.  
  253.     Note:  When reading or executing text files it's ok to use ^S ^Q and ^C .
  254.  
  255. F6  duplex toggle..... use half duplex on GENIE.
  256.  
  257. F5  locks out the Resolution switch command.
  258.  
  259. F4  MIDI playback on/off toggle.   ( Default MIDI playback on! )
  260.  
  261.                                OTHER KEYS
  262.  
  263. INSERT set baud      ....Set baud 300 thru 9600 baud.
  264.  
  265.                         Note: No default at startup,  this is so when
  266.                         using FLASH and the ACC the baud remains the same
  267.                         as the host program. None of the other RS323 parameters
  268.                         are changed by this option only baud and I've not tested
  269.                         IG past 2400 baud.
  270.  
  271. + Plus Sign          ....MIDI out SYNC,  If music is garbled hit it.
  272.  
  273. CLR HOME restore     ....Clear screen, restore resolution and colors.
  274.  
  275. HELP screen          ....Short list of keyboard commands.
  276.  
  277. UNDO exit            ....Exits Instant Graphics!
  278.  
  279.  
  280. ################################################################################
  281.         !!!! PLEASE READ NEW CHANGES FOR IG214.EMU FOR INTERLINK !!!!
  282.              See the entries under UNDO and the INSERT keys also
  283.              half duplex must now be set with control+shift+p .
  284.              This was necessary in order to steal the MOUSE from
  285.              Interlink so POINT and CLICK menus could be done
  286.              online.  It also keeps that annoying STATUS line from
  287.              popping up in your graphics when you've already got rid
  288.              of it!  It gives IG the FUNCTION keys too, so I might
  289.              use them for special features later on.
  290. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  291.  
  292.                          KEYBOARD COMMANDS for IG.EMU
  293.                          ----------------------------
  294.  
  295. UNDO                 ....Give MOUSE and FUNCTION keys to Interlink
  296.                          till another character is received via the serial
  297.                          port  while  graphics  are  ON.
  298.                          Tap once when BBS is waiting for input,
  299.                          such as at logon when the BBS is
  300.                          asking for name/password, then hit your
  301.                          Function key to shoot out your name/password to
  302.                          the BBS.  Use the same way for file transfers,
  303.                          tap UNDO then hit F2.  The Interlink status
  304.                          line can be updated also this way. Tap UNDO
  305.                          while BBS is waiting for input from you and
  306.                          your Interlink status line will update until
  307.                          another  character is received  via the serial
  308.                          port. Same goes for using the Interlink Mouse buttons
  309.                          to jump to Interlink's GEM menus,  dialer and the
  310.                          double button file transfer click.
  311.  
  312. CLR HOME restore     ....Clear screen, restore resolution and colors.
  313.  
  314. INSERT               ....Cuts graphics ON or OFF, sound indicator
  315.                          doodle doodle doo = ON   dunt = off
  316.                          While graphics are ON the Interlink status
  317.                          line will not be updated and the MOUSE
  318.                          belongs to IG as well as all other keys
  319.                          function keys included.  A control+shift+INSERT
  320.                          will cut graphics off but doesn't give Interlink
  321.                          the mouse or functions keys and status line,
  322.                          a almost useless feature, a quirk really.
  323.  
  324.                          Important!  Default mode is graphics on.
  325.                          If typing in a graphics message on a BBS push
  326.                          INSERT first.
  327.  
  328.  
  329.  
  330. + Plus Sign          ....MIDI out SYNC,  If music is garbled hit it.
  331.  
  332. control+shift+m      MIDI playback on/off toggle.  Default MIDI playback on!
  333.  
  334. control+shift+r      ....locks out the Resolution switch command.
  335.  
  336. control+shift+p      .....duplex toggle,  use half duplex on GENIE.
  337. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  338.  
  339.  
  340.                                INSTANT GRAPHICS!
  341.                                -----------------
  342.  
  343. g  Graphic scaling      G#g 1:  or  G#g 2:  or  G#g 0:
  344. ------------------
  345.                         g = command identifier
  346.                             Turn graphic scaling on or off.
  347.                             When on all X Y coordinates are plotted to
  348.                             an imaginary screen 10,000 by 10,000.
  349.                             0,0 is in the upper left corner, while the
  350.                             lower right corner is 9999,9999 This means
  351.                             graphics plotted with graphics scaling should
  352.                             look approximately the same in all resolutions!
  353.                             In practice though it's only really good for
  354.                             general positioning.  The new Y coordinate *2
  355.                             will save you time when converting graphics.  Make
  356.                             your graphics for medium resolution and then
  357.                             when you do the mono version  just add a
  358.                             G#g 2: at the top of your script and a
  359.                             G#g 0: at the end if you want to cut it back off.
  360.                             this should fix the medium res graphics to run in
  361.                             640x400 mono mode with only the adjustment of
  362.                             the 'S'etcolors, 'C'olor, and maybe the 'c' command
  363.                             Keep in mind that none of these 'g' options work
  364.                             within a "& LOOP".
  365.  
  366.  
  367.                             Parameter:
  368.                              0 = off
  369.                              1 = on
  370.                              2 = Y coordinate *2 if in monchrome 640 x 400 mode
  371.                                  will not change value if in low or medium
  372.                                  resolution.
  373.  
  374.  
  375.  
  376.  
  377. G  grab screen                  G#G 0,3,0,0,100,100,100,50:  screen to screen
  378. --------------                  G#G 1,3,0,0,100,100:         screen to memory
  379.                                 G#G 2,3,200,50:              memory to screen
  380.                                 G#G 3,3,50,50,75,75,150,100: piece of memory to
  381.                                                              screen
  382.  
  383.                          G = command identifier
  384.                              Screen grab,  "Bit-Blit".
  385.                              Grabs a rectangular portion of the screen
  386.                              copies it to another portion of the screen
  387.                              or to memory, or copies memory to screen,
  388.                              depending on 1st parameter.  The whole screen
  389.                              can be blitted to memory and back!
  390.  
  391.                              1st parameter sets type of blit to do:
  392.                               0 = screen to screen
  393.                               1 = screen to memory
  394.                               2 = memory to screen
  395.                               3 = piece of memory to screen
  396.  
  397.  
  398.                         2nd parameter sets writing mode for the blit operation.
  399.                          mode  logic...............Description
  400.                           0    dest=0..............Clear destination block
  401.                           1    dest=SAND D
  402.                           2    dest=S AND (NOT D)
  403.                           3    dest=S.............Replace mode
  404.                           4    dest=(NOT S) AND D...Erase mode
  405.                           5    dest=D...............Destination unchanged
  406.                           6    dest=S XOR D.........XOR mode
  407.                           7    dest=S OR D..........Transparent mode
  408.                           8    dest=NOT (S OR D)
  409.                           9    dest=NOT (S XOR D)
  410.                           10   dest=NOT D
  411.                           11   dest=S OR(NOT D)
  412.                           12   dest=NOT S
  413.                           13   dest=(NOT S) OR D....Reverse Transparent mode
  414.                           14   dest=NOT (S AND D)
  415.                           15   dest=1...............Fill destination block
  416.  
  417.                           The rest of the parameters depend on the
  418.                           1st parameters setting:
  419.  
  420.                           IF 1st PARAMETER = 0   "screen to screen"
  421.                               3rd = X source, upper left corner
  422.                               4th = Y source, upper left corner
  423.                               5th = X source, lower right corner
  424.                               6th = Y source, lower right corner
  425.                               7th = X destination, upper left corner
  426.                               8th = Y destination, upper left corner
  427.  
  428.                           IF 1st PARAMETER = 1  "screen to memory"
  429.                               3rd = X source, upper left corner
  430.                               4th = Y source, upper left corner
  431.                               5th = X source, lower right corner
  432.                               6th = Y source, lower right corner
  433.  
  434.                           IF 1st PARAMETER = 2  "memory to screen"
  435.                               3rd = X destination, upper left corner
  436.                               4th = Y destination, upper left corner
  437.  
  438.                           IF 1st PARAMETER = 3   "piece of memory to screen"
  439.                               3rd = X source, upper left corner
  440.                               4th = Y source, upper left corner
  441.                               5th = X source, lower right corner
  442.                               6th = Y source, lower right corner
  443.                               7th = X destination, upper left corner
  444.                               8th = Y destination, upper left corner
  445.  
  446.  
  447.  
  448. I  initialize           G#I 0:
  449. -------------
  450.                         I = command identifier
  451.                         Initializes color pallet and most
  452.                         attributes to what ever they were before
  453.                         the Instant Graphics ACC was executed.
  454.                         Issue this command at the start of each  graphic
  455.                         sequence and you'll have a common starting point.
  456.  
  457.                         Parameter:
  458.                             0 = Set resolution, pallet, and attributes
  459.                             1 = Set resolution and pallet
  460.                             2 = Set attributes
  461.                             3 = Set Instant Graphics! default pallet
  462.  
  463.  
  464.  
  465. A attributes for fills  G#A 1,1,0:
  466. ----------------------
  467.                         A  =  command identifier
  468.                         Sets attributes for fills and sets
  469.                         border option.
  470.  
  471.                         1st parameter selects pattern type:
  472.                         0=hollow, 1=solid, 2=pattern, 3=hatch
  473.  
  474.                         2nd parameter selects pattern index number it
  475.                         ranges 1-24 for type pattern and 1-12 for type hatch.
  476.                         These patterns are illustrated in the ST BASIC manual,
  477.                         page 95 in mine.
  478.  
  479.                         3rd parameter specifies if a border is to be drawn
  480.                         around the filled area.  1=yes, 0=no
  481.  
  482.  
  483.  
  484. H hollow set            G#H 0:
  485. ------------
  486.                         H = command identifier
  487.                         When on non solids are drawn, a circle will be
  488.                         drawn instead of a disk.
  489.  
  490.                         Parameter  1=on  0=off
  491.  
  492.  
  493. M drawing MODE          G#M 1:
  494. --------------
  495.                         M = command identifier
  496.  
  497.                         Parameter sets drawing mode.
  498.                         1 = replace     2 = transparent
  499.                         3 = XOR         4 = reverse transparent
  500.  
  501.  
  502.  
  503. T  line, marker TYPES   G#T 2,1,4:
  504. ---------------------
  505.                         T = command identifier
  506.  
  507.                         1st parameter selects lines or polymarkers to change.
  508.                         1 = polymarkers  ( effects output of the P command )
  509.                         2 = lines        ( effects D and L commands )
  510.  
  511.                         2nd parameter picks type of line or polymarker
  512.                         depending value of 1st parameter.
  513.  
  514.                         for polymarkers:
  515.                            1 = point            2 = plus sign
  516.                            3 = star             4 = square
  517.                            5 = diagonal cross   6 = diamond
  518.  
  519.                         for lines:
  520.                            1 = solid            2 = long dash
  521.                            3 = dotted line      4 = dash-dot
  522.                            5 = dashed line      6 = dash-dot-dot
  523.  
  524.  
  525.                         3rd parameter selects size and line end styles.
  526.  
  527.                         -size-
  528.                         for polymarkers: 1 thru 8
  529.                         for lines:       1 thru 41
  530.  
  531.  
  532.                         -line end styles-
  533.                          0  = both ends square
  534.  
  535.                          50 = arrows on both ends
  536.                          51 = arrow on left,  squared on right
  537.                          52 = arrow on right, squared on left
  538.                          53 = arrow on left,  rounded on right
  539.                          54 = arrow on right, rounded on left
  540.  
  541.                          60 = rounded on both ends
  542.                          61 = rounded on left,  squared on right
  543.                          62 = rounded on right, squared on left
  544.                          63 = rounded on left,  arrow on right
  545.                          64 = rounded on right, arrow on left
  546.  
  547.  
  548. E text EFFECTS          G#E 8,18,1:
  549. --------------
  550.                         E = command identifier
  551.                         Sets VDI text effects for text put on the screen
  552.                         with the  W  command.
  553.  
  554.                         1st parameter selects font effect they can be combined
  555.                                 0 = normal      1 = thickened (bold)
  556.                                 2 = ghosted     4 = skewed
  557.                                 8 = undelined   16 = outlined
  558.  
  559.                         2nd parameter sets text size in points 1/72 of a inch.
  560.                         Values the default system font may be printed in:
  561.                                         8  9  10  16  18  20
  562.  
  563.                         3rd parameter sets the text rotation.
  564.                                 0 = 0 degrees           1 = 90 degrees
  565.                                 2 = 180 degrees         3 = 270 degrees
  566.                                 4 = 360 degrees
  567.  
  568.  
  569.  
  570. R set Resolution        G#R 1,0:
  571. ----------------
  572.                         R = command identifier
  573.                         Allows to switch between low and medium resolution.
  574.                         Low resolution allows the use of 16 VDI colors only
  575.                         if resolution was set from the desktop, try using
  576.                         the modified VT-52 commands to set background color.
  577.                         Medium resolution only allows 4 colors.
  578.                         If the resolution selected is the one the system is
  579.                         currently in, IG ignores it. This is so you
  580.                         can set the set the color palette and not do a
  581.                         resolution switch.  Resolution switching creates
  582.                         havoc for some commercial terminals you may be using
  583.                         IG with.
  584.  
  585.  
  586.                         1st Parameter selects resolution to switch to:
  587.                         0 = low resolution      1 = medium resolution
  588.  
  589.                         2nd Parameter is the system palette flag:
  590.                         0 = no change           1 = default system colors.
  591.                                                 2 = IG default color palette
  592.  
  593.  
  594. C color set             G#C 0,2:
  595. -----------
  596.                         C  =  command identifier
  597.                         Selects the Pen number to perform the screen
  598.                         operation with.
  599.  
  600.                         1st parameter selects screen operation pen to change.
  601.                         0 = Polymarker color, used for the (P  plot command).
  602.                         1 = line color
  603.                         2 = fill color
  604.                         3 = text color,  used with the ( W command ).
  605.  
  606.                         2nd parameter selects the Pen number 0 thru 15.
  607.  
  608.  
  609.  
  610. S set PEN color         G#S 1,0,0,7:
  611. --------------------
  612.                         S = command identifier
  613.                         1st parameter selects pen color to change 0 thru 15.
  614.                         2nd parameter selects red   color level 0 thru 7.
  615.                         3rd parameter selects green color level 0 thru 7.
  616.                         4th parameter selects blue  color level 0 thru 7.
  617.  
  618.  
  619. P polymarker PLOT       G#P 149,99:
  620. -----------------
  621.                         P = command identifier
  622.                         Plot a point or polymarker shape on the screen.
  623.                         See also the entry for the  T and C  commands.
  624.  
  625.                         1st parameter = X coordinate
  626.                         2nd parameter = Y coordinate
  627.  
  628.  
  629. L draw LINE             G#L 0,0,300,150:
  630. -----------
  631.                         L = command identifier
  632.                         Draws a line between specified points.
  633.                         See also the entry for T and C commands.
  634.  
  635.                         1st parameter = begining X coordinate
  636.                         2nd parameter = begining Y coordinate
  637.                         3rd parameter = ending   X coordiante
  638.                         4th parameter = ending   Y coordinate
  639.  
  640.  
  641.  
  642. D line DRAWTO           G#D 149,99:
  643. -------------
  644.                         D = command identifier
  645.                         draws a line from the last polymarker plot,
  646.                         draw LINE or DRAWTO command.  You should use
  647.                         the P or L command to first establish a point
  648.                         for DRAWTO to begin at.
  649.                         See also the entry for T and C commands.
  650.  
  651.                         1st parameter = X coordinate
  652.                         2nd parameter = Y coordinate
  653.  
  654.  
  655. W  WRITE text           G#W 50,100,DEVO E-Z Listening Disc@
  656. -------------
  657.                         W = command identifier
  658.                         Writes text on screen at any X Y coordinate.
  659.                         Carriage Return and Linefeed are ignored (IG214) so
  660.                         you can split the text to be written across two lines,
  661.                         the maximum length is 128 characters.
  662.                         The @ symbol ends the text to be written.
  663.                         See also the E and C commands.
  664.  
  665.                         1st parameter = X coordinate
  666.                         2nd parameter = Y coordinate
  667.                         3rd parameter = text ended with @
  668.  
  669.                         Chain example:
  670.                         G#W>20,50,Chain@L 0,0,300,190
  671.  
  672.  
  673. F flood FILL            G#F 600,0:
  674. ------------
  675.                         F = command identifier
  676.                         Fills a area by replacing the color found
  677.                         at specified X Y coordinates till it hits
  678.                         another color of edge of screen.
  679.  
  680.                         1st parameter = X coordinate
  681.                         2nd paraneter = Y coordinate
  682.  
  683. Z filled rectangle      G#Z 10,10,200,100:
  684. ------------------
  685.                         Z = command identifer
  686.                         Fills a area.  The A commands
  687.                         border set has no effect on this
  688.                         fill.
  689.  
  690.                         1st parameter = upper left corner  X coordinate
  691.                         2nd parameter = upper left corner  Y coordinate
  692.                         3rd parameter = lower right corner X coordinate
  693.                         4th parameter = lower right corner Y coordinate
  694.  
  695. B  box                  G#B 0,0,100,100,0
  696. ------
  697.                         B = command identifier
  698.                         General purpose command for drawing
  699.                         rectangles.  All attributes effect this
  700.                         command.
  701.                         1st parameter = upper left corner  X coordinate
  702.                         2nd parameter = upper left corner  Y coordinate
  703.                         3rd parameter = lower right corner X coordinate
  704.                         4th parameter = lower right corner Y coordinate
  705.                         5th parameter = rounded corners flag  0=no  1=yes
  706.  
  707.  
  708.  
  709. U rounded rectangles    G#U 100,0,300,150,1
  710. --------------------
  711.                         U = command identifier
  712.                         Draws a rounded rectangle.
  713.  
  714.                         1st parameter = upper left corner  X coordinate
  715.                         2nd parameter = upper left corner  Y coordinate
  716.                         3rd parameter = lower right corner X coordinate
  717.                         4th parameter = lower right corner Y coordinate
  718.                         5th parameter = 0 selects filled rounded rectangle
  719.                                           with no borders.
  720.                                         1 selects rounded rectangle
  721.                                           affected by all attributes and
  722.                                           H command as well as line patterns
  723.                                           set with the T command.
  724.  
  725.  
  726.  
  727. K  arc                  G#K 300,99,75,90,180:
  728. ------
  729.                         K = command identifier
  730.                         Draws a ARC, which is part of a circle.
  731.  
  732.                         1st parameter = X coordinate for the circle center
  733.                         2nd parameter = Y coordinate for the circle center
  734.                         3rd parameter = radius of the circle
  735.                         4th parameter = begining angle to start drawing at
  736.                         5th parameter = ending angle to to stop drawing at
  737.  
  738.  
  739. J  elliptical arc       G#J 0,199,400,600,0,270:
  740. -----------------
  741.                         J = command identifier
  742.                         Draws a elliptical ARC, which is part of a oval.
  743.  
  744.                         1st parameter = X coordinate for the oval center
  745.                         2nd parameter = Y coordinate for the oval center
  746.                         3rd parameter = X radius of the oval
  747.                         4th parameter = Y radius of the oval
  748.                         5th parameter = begining angle to start drawing at
  749.                         6th parameter = ending angle to to stop drawing at
  750.  
  751. O   CIRCLE              G#O 300,100,75:
  752. ----------
  753.                         O = command identifier
  754.                         Draws a disc or circle depending if the
  755.                         H command is active or not.
  756.  
  757.                         1st parameter = X coordinate of circle center
  758.                         2nd parameter = Y coordinate of circle center
  759.                         3rd parameter = radius of circle
  760.  
  761.  
  762. Q  ellipse              G#Q 300,100,200,60:
  763. ----------
  764.                         Q = command identifier
  765.                         Draws an ellipse, which is a OVAL.
  766.                         See H and A commands also.
  767.                         1st parameter = X coordinate of oval center
  768.                         2nd parameter = Y coordinate of oval center
  769.                         3rd parameter = X radius of oval
  770.                         4th parameter = Y radius of oval
  771.  
  772.  
  773.  
  774. V  pieslice             G#V 50,50,100,180,270:
  775. -----------
  776.                         V = command identifier
  777.                         Draws a pieslice, which is part of a circle.
  778.  
  779.                         1st parameter = X coordinate for the circle center
  780.                         2nd parameter = Y coordinate for the circle center
  781.                         3rd parameter = radius of the circle
  782.                         4th parameter = begining angle to start drawing at
  783.                         5th parameter = ending angle to to stop drawing at
  784.  
  785.  
  786. Y  elliptical pieslice  G#Y 80,80,100,200,0,180:
  787. ----------------------
  788.                         Y = command identifier
  789.                         Draws a elliptical pieslice. which is part of a OVAL.
  790.  
  791.                         1st parameter = X coordinate for the oval center
  792.                         2nd parameter = Y coordinate for the oval center
  793.                         3rd parameter = X radius of the oval
  794.                         4th parameter = Y radius of the oval
  795.                         5th parameter = begining angle to start drawing at
  796.                         6th parameter = ending angle to to stop drawing at
  797.  
  798.  
  799. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  800.  
  801.  
  802.  
  803.                           Modified  VT-52 COMMANDS
  804.                           ------------------------
  805.  
  806.  
  807. c  COLOR                G#c 1,1:
  808. --------
  809.                         c = command identifier
  810.                         Sets text and background color
  811.  
  812.                         1st parameter selects text or background
  813.                          0 = background         1 = text
  814.  
  815.                         2nd parameter = color register 0 thru 15
  816.  
  817.                          Note: color registers can be changed with the
  818.                          S command but the ST's VDI pen numbers do not
  819.                          corespond with color register numbers here a
  820.                          reference chart:
  821.  
  822.                         register        pen             register        pen
  823.                            0             0                 8             9
  824.                            1             2                 9             10
  825.                            3             6                 10            11
  826.                            4             4                 11            14
  827.                            5             7                 12            12
  828.                            6             5                 13            15
  829.                            7             8                 14            13
  830.                                                            15            1
  831.  
  832.  
  833.  
  834. d  delete line          G#d 4:
  835. --------------
  836.                         d = command identifier
  837.                         Deletes specified number of text lines, the bottom
  838.                         line on the screen is scrolled upward.
  839.  
  840.                         Parameter =  number of lines to delete.
  841.  
  842.  
  843.  
  844. i  line insert          G#i 1,3:
  845. --------------
  846.                         i = command identifier
  847.                         Inserts lines at cursor position or top of screen.
  848.  
  849.                         1st parameter selects type of insert.
  850.                                 0 = move cursor up a line until it hits
  851.                                     the top of the screen, then insert
  852.                                     blank lines.
  853.                                 1 = Insert line at cursor, bottom line is
  854.                                     scrolled off.
  855.  
  856.                         2nd parameter = number of times to perform
  857.                                         this operation.
  858.  
  859.  
  860.  
  861. k  cursor               G#k 0:
  862. ---------
  863.                         k = command identifier
  864.                         Turns text cursor on or off.
  865.  
  866.                         Parameter:
  867.                             0 = off             1 = on
  868.  
  869.  
  870.  
  871. l line clear            G#l 0:
  872. ------------
  873.                         l = command identifier
  874.                         Clears text lines.
  875.  
  876.                         Parameter:
  877.                             0 = Clear whole line and carriage return.
  878.                             1 = Clear line from begining to cursor inclusive.
  879.                             2 = Clear line at cursor to end of line.
  880.  
  881.  
  882. m  cursor motion                G#m 1,20:
  883. ----------------
  884.                                 m = command identifier
  885.                                 Homes or moves cursor a line at a time
  886.                                 or a column at a time, from current position.
  887.  
  888.                                 1st parameter selects direction.
  889.                                         0 = Home cursor.
  890.                                         1 = up
  891.                                         2 = down
  892.                                         3 = right
  893.                                         4 = left
  894.  
  895.                                 2nd parameter sets number of times to do this
  896.                                     operation.
  897.  
  898.  
  899.  
  900. p  position             G#p 70,19:
  901. -----------
  902.                         p = command identifier
  903.                         Positions cursor at  column, line.
  904.                         Like X Y only with characters.
  905.  
  906.                         1st parameter = column   0 thru 79
  907.  
  908.                         2nd parameter = line     0 thru 24
  909.  
  910.  
  911. r  remember             G#r 0:
  912. -----------
  913.                         r = command identifier
  914.                         Remembers or recalls cursor position.
  915.  
  916.                         Parameter:
  917.                                 0 = remember cursor position
  918.                                 1 = recall cursor position, and put it there
  919.  
  920.  
  921.  
  922. s  screen clear         G#s 0:
  923. ---------------
  924.                         s = command identifier
  925.                         Clears whole screen or portions of it.
  926.  
  927.                         Parameter:
  928.                             0 = Clear whole screen home cursor.
  929.                             1 = Clear from home to cursor.
  930.                             2 = Clear from cursor to bottom of screen.
  931.  
  932.  
  933.  
  934. v  inverse video        G#v 1:
  935. ----------------
  936.                         v = command identifier
  937.                         Turn inverse video on or off.
  938.  
  939.                         Parameter:
  940.                             0 = off
  941.                             1 = on
  942.  
  943.  
  944.  
  945. w  line wrap            G#w 1:
  946. ------------
  947.                         w = command identifier
  948.                         Turns line wrap on or off.
  949.  
  950.                         Parameter:
  951.                             0 = off
  952.                             1 = on
  953.  
  954.  
  955. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  956.  
  957.  
  958.                                 CUSTOM COMMANDS
  959.                                 ---------------
  960.  
  961. t  time a pause         G#t 2:
  962. ---------------
  963.                         t = command identifier
  964.                         Tells IG to send ^S^S, times it for X seconds
  965.                         and then tells IG to send ^Q^Q.  Any key
  966.                         will abort the pause prematurly.
  967.                         MAX time is 30 seconds if more of a pause is needed
  968.                         chain a few together.  G#t>30:t 5:
  969.                         I'm hoping this will eliminate the BBS from timing
  970.                         out and logging a user off.
  971.  
  972.                         Parameter = number of seconds to pause, 30 max.
  973.  
  974.  
  975.  
  976.  
  977.  
  978. <  INPUT Command       G#< 1,0,1:
  979. ----------------
  980.                        Gets input from user's keyboard and transmits it as soon
  981.                        as the chain " > " from the last G#  is broke.  Should
  982.                        be used near the end of a MENU, as the BBS will continue
  983.                        to send to the terminal while the INPUT command is
  984.                        waiting on the user.  This is so the BBS will be waiting
  985.                        for INPUT when IG sends the user's response at '>' exit.
  986.                        The INPUT command is good for letting you use
  987.                        any 4 colors you want for a BBS MENU and then to issue
  988.                        some reset commands. ie G#<>1,0,1:I>0:k>1:s>0:   Also
  989.                        optionally INVOKES MOUSE routine for the X 4  command
  990.                        so ZONES can be pointed to and clicked on, you must
  991.                        use X 4 to define and load the zone strings first and
  992.                        you should use IG to draw some borders around the
  993.                        zones so the user will know where and what he is
  994.                        selecting when he clicks on a ZONE, that way you
  995.                        have the job of cosmetics, that's half the fun anyway.
  996.                        The selected Zone's associated data string is
  997.                        transmitted to the BBS as soon as IG exits
  998.                        the chain from the last G#  .  ZONE 47 is the default
  999.                        ZONE, it's associated data string will be sent if no
  1000.                        ZONES match where the user clicked.  You should always
  1001.                        define ZONE 47.
  1002.                        You may find the X 3 and the X 6 command useful too.
  1003.  
  1004.                    1st parameter = Transmitt carriage return at the end
  1005.                                    of the string INPUTted?  1 = YES  0 = NO
  1006.  
  1007.  
  1008.  
  1009.                    2nd parameter = INPUT type
  1010.                                    0 = One key,  (hot key input for FoReM)
  1011.                                    1 = String, with a return to
  1012.                                        end input from user,
  1013.                                        max string length = 128
  1014.                                    2 = MOUSE ZONE, activate a POLYMARKER
  1015.                                        mouse pointer, use the " T " command
  1016.                                        to select mouse type and size and the
  1017.                                        " C " command to set mouse color.
  1018.                                        User moves mouse and clicks on a
  1019.                                        "ZONE". Selection is processed
  1020.                                        when button is released.
  1021.                                        The associated ZONE string
  1022.                                        is copied into INPUT's
  1023.                                        string to be transmitted to BBS
  1024.                                        at the end of the IG script chain.
  1025.  
  1026.  
  1027.                    3rd parameter = Output options
  1028.                                    0 = Don't show input typed from user
  1029.                                        on his screen. Has no effect on
  1030.                                        Mouse ZONES.
  1031.                                    1 = Show input typed from user on screen.
  1032.                                        Has no effect on Mouse ZONES.
  1033.                                    2 = Show input but throw it away, don't
  1034.                                        transmit it at the end of the chain.
  1035.                                        Does effect Mouse ZONE.
  1036.                                    3 = Don't show input from user, and throw it
  1037.                                        away too.  Does effect Mouse ZONE.
  1038.  
  1039.            Note:  If 2 ZONES areas are over lapping on the screen the
  1040.                   ZONE with the lower value ID number will get selected when
  1041.                   the mouse is clicked on both ZONEs at the same time.
  1042.  
  1043.                           +----+--------------------+
  1044.  user clicks in here ---> |ID=1|                    |
  1045.  ZONE 1 gets selected     +----+   ID=10            |
  1046.                           |                         |
  1047.                           +-------------------------+
  1048.  
  1049.                           +----+--------------------+
  1050.  user clicks in here ---> |ID=7|                    |
  1051.  ZONE 2 gets selected     +----+   ID=2             |
  1052.                           |                         |
  1053.                           +-------------------------+
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059. ? Ask IG                G#? 0:
  1060. --------
  1061.                         ? = command identifier
  1062.                         Asks the Instant Graphics terminal
  1063.                         questions.  Transmit it to the
  1064.                         BBS  ( Host system ).
  1065.  
  1066.                         1st parameter selects the question to ask.
  1067.                                 0 = Version number, IG will transmit in
  1068.                                     ASCII to the host system the version
  1069.                                     number it is.
  1070.  
  1071.                                 1 = Ask IG where the cursor is and the
  1072.                                     mouse button state.  When this question
  1073.                                     is asked a 2nd parameter is passed also,
  1074.                                     like G#? 1,0  the zero means just check
  1075.                                     the cursor and mouse buttons and send it to
  1076.                                     host system immediatly.  If the second
  1077.                                     parameter is a 1 then the user can move the
  1078.                                     cursor with the mouse until a button is
  1079.                                     pressed then the cursor location and button
  1080.                                     state is transmitted.  In other words a
  1081.                                     point and click cursor!!!  The cursor and
  1082.                                     and mouse button state is sent in three
  1083.                                     characters, subtract 32 from the ASCII
  1084.                                     value of these characters to arrive at
  1085.                                     COLUMN number 0-79    ROW 0-24   BUTTON 0-3
  1086.                                     With this command the cursor should be
  1087.                                     enabled with the G#k 1 command.
  1088.  
  1089.                                 2 = Ask IG where the mouse is and button state.
  1090.                                     A second parameter is required when this
  1091.                                     question is asked, like G#? 2,0 the zero
  1092.                                     indicates that IG is to send the BBS the
  1093.                                     mouse coordinates immediatly a 1 will
  1094.                                     activate a polymarker for a mouse pointer
  1095.                                     That you select with IG's "T" command.
  1096.                                     The user can move the pointer around till
  1097.                                     he clicks a button then the host system is
  1098.                                     sent the X,Y,Button in a ASCII string just
  1099.                                     like this  420,150,1:   It's up to the
  1100.                                     host system to convert the ASCII string
  1101.                                     into actual numbers.  The "g" command has
  1102.                                     no effect on this command in version 2.12.
  1103.  
  1104.                                 3 = Asks IG what resolution the terminal is in
  1105.                                         0:    low resolution     320x200
  1106.                                         1:    medium resolution  640x200
  1107.                                         2:    high resolution    640x400
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113. &  loop a command       G#& 0,198,6,0,L,4,0,0,x,y:
  1114. -----------------
  1115.                         XOR stepping example:
  1116.                         G#G 1,3,0,0,50,50:
  1117.                                 G#&>198,0,2,0,G|4,2,6,x,x:
  1118.  
  1119.  
  1120.                         & = command identifier
  1121.                         Loops a operation specified number of times with
  1122.                         stepping, special options for XOR ing and the
  1123.                         'W'rite text command. The CHAIN character > only
  1124.                         works directly after the &>, you can't loop a
  1125.                         chain of commands, only 1 command.  Also you can't
  1126.                         loop a loop.  Still this command is very powerful
  1127.                         and worth the effort to learn.
  1128.  
  1129.                         1st parameter = FROM value
  1130.                             if from value bigger than TO value
  1131.                             loop will detect and step backwards.
  1132.  
  1133.                         2nd parameter = TO value
  1134.                         3rd parameter = step value, positive number only.
  1135.                         4th parameter = DELAY in 200 hundredths of a between
  1136.                             each step of the loop.
  1137.                         5th parameter = command Identifier to loop.
  1138.                             optional specification character after 5th
  1139.                             parameter instead of comma:
  1140.                                | = XOR stepping
  1141.                                @ = get text for W command everytime
  1142.                                    otherwise text written from loop
  1143.                                    with the W command is last text
  1144.                                    written with W command before the
  1145.                                    loop was executed.  W command now
  1146.                                    ignores CR and LF so loop command
  1147.                                    can be used for easy Written text
  1148.                                    placement with the  loop's stepping.
  1149.                         6th parameter = number of parameters command that
  1150.                             to be looped requires.  You should at
  1151.                             least specify the number the command requires
  1152.                             ie L command requires 4 , ie W command 2.
  1153.                             You can specify multiples of the required number
  1154.                             such as 8 or 12 for the L command Max up to
  1155.                             2048.  This will work like BASIC's READ DATA
  1156.                             statements between each loop step.  Also note
  1157.                             a _ underscore may be used to split parameters
  1158.                             across lines if it is used in place of the first
  1159.                             digit of value, this will make huge detailed
  1160.                             files smaller (DEGAS conversions).
  1161.  
  1162.                       REMAINING parameters = whatever the command being looped
  1163.                                 requires.  If you use a "x" as a parameter
  1164.                                 it will be stepped in the direction of the
  1165.                                 FROM TO values, if you use a "y" the loop
  1166.                                 will step the value in a reverse direction.
  1167.                                 You can use both "x" and "y" at the same time.
  1168.                                 If you use a number it will remain as a constant
  1169.                                 for the command beign looped through out the
  1170.                                 loop execution.
  1171.  
  1172.  
  1173.  
  1174. loop Written text option example:
  1175.  
  1176. G#E>0,18,0:C>3,2:s>0:
  1177. G#&>20,140,20,0,W@2,0,x,A. Item 1@
  1178. B. Item 2@
  1179. C. Item 3@
  1180. D. Item 4@
  1181. E. Item 5@
  1182. F. Item 6@
  1183. G. Item 7@
  1184. G#W>200,140,Power Graphics with IG!!!@
  1185. G#& 140,20,20,0,W,2,200,x:
  1186. G#W>10,180,That's so DEVO!!!@
  1187.  
  1188. Example of loop used to READ DATA and step within at the same time in
  1189. both directions, once you get used to the "& loop" you will use it
  1190. a lot!!
  1191.  
  1192. G#I>0:s>0:k>0:L>300,10,340,10:S>2,7,4,5:S>1,0,0,0:
  1193. G#&>85,300,5,0,D,24,340,10:340,60:420,60:420,85:_
  1194. 340,85:340,180:85,180:x,85:220,85:220,60:x,60:x,10:
  1195. G#L>300,180,300,85:A>1,1,1:C>2,2:F>320,20:E>0,10,0:M>2:
  1196. G#C>3,1:W>210,141,Because of@
  1197. G#W>210,156,God's Love@
  1198. G#W>210,171,we are.@M>1:
  1199. G#t>3:G>1,3,80,8,421,181:s>0:
  1200. G#&>0,220,4,0,G,16,2,3,x,x:2,3,y,y:2,3,x,y:2,3,y,x:t>2:s>0:
  1201. G#&>0,638,4,0,G,8,2,3,x,9:2,3,y,9:
  1202. G#t>3:s>0:k>1:G>2,3,80,8:p 0,20:
  1203.  
  1204.  
  1205. ...............................................................................
  1206. MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI MIDI
  1207.  
  1208.  
  1209. N noise command                 G#N>2:
  1210. ---------------
  1211.                         N = command identifier
  1212.                         The N command is for handling sound.
  1213.                         Currently only MIDI, but other things
  1214.                         may be handle by N in the future,
  1215.  
  1216.  
  1217.                         1st parameter = N operation to perform.
  1218.                          If 1st parameter = 0 or 1 a 2nd parameter is required,
  1219.                          which is number of MIDI data bytes to read into
  1220.                          the MIDI buffer, MAX of 9999.
  1221.  
  1222.  
  1223.     Load only:           N 0,9998,datadelaydatadelaydatadelay....
  1224.     Load and execute:    N 1,9998,datadelaydatadelaydatadelay....
  1225.  
  1226.  
  1227.                          The 0 means load the MIDI buffer only,
  1228.                          then the number of bytes to load followed
  1229.                          by a comma, then the MIDI data in the form
  1230.                          data byte, delay byte, back to back with the
  1231.                          data byte always first.  The delay is in 200ths
  1232.                          of a second so a delay of about 1.25 seconds
  1233.                          between each data byte is the max. After
  1234.                          the MIDI buffer is loaded with a N 0 or 1 command
  1235.                          a N 2: command issued later will replay the buffer
  1236.                          without reloading, like G#N 2:  If a user CONTROL C's
  1237.                          or CONTROL X's the MIDI data while it is being loaded
  1238.                          the MIDI buffer will be set to 0 and N 2: will play
  1239.                          nothing.  However it a user aborts while MIDI is
  1240.                          being played the MIDI buffer will remain intact.
  1241.                          If a user has the MIDI option off (F4 function key
  1242.                          on the ACC, control+shift+m for the EMU) MIDI data
  1243.                          will be still loaded but not executed. If line noise
  1244.                          creeps into the MIDI buffer when it's loaded it will
  1245.                          garble the sound, the user might be able to recover
  1246.                          by pressing the + key to try to get the MIDI flow
  1247.                          out to the ports in proper sync datadelaydatadelay,
  1248.                          line noise can get it in reverse order.
  1249.  
  1250.                    *** Download MS2IG.ARC for a Music Studio to IG file
  1251.                        converter.
  1252.  
  1253. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1254.  
  1255.  
  1256.                            eXtended Commands
  1257.                            -----------------
  1258.  
  1259.                 Extended commands are invoked by a captial
  1260.                 X and a number ranging from 0 to 9999, this is
  1261.                 sort of like the old 8 bit XIO thing.
  1262.                 Opens a door for 10,000 new commands!!!
  1263.  
  1264.  
  1265. 0  SPRAY PAINT          G#X 0,400,50,200,145,200:
  1266. ---------------
  1267.                         X 0 = command identifier
  1268.                         Plots polymarkers at random in
  1269.                         a rectangular area with specified concentration.
  1270.  
  1271.                         1st parameter upper left corner  X coordinate.
  1272.                         2nd parameter upper left corner  Y coordinate.
  1273.                         3rd parameter X range from upper left corner, 255 max.
  1274.                         4th parameter Y range from upper left corner, 255 max.
  1275.                         5th parameter concentration, 9999 maximum.
  1276.  
  1277.  
  1278. 1 SET COLOR REGISTER    G#X 1,4,0:
  1279. --------------------
  1280.                         X 1 = command identifier
  1281.                         Sets a color register with Xbios 7.
  1282.                         Use to set a specific register.  The S command
  1283.                         differs in that it sets a PEN's register.
  1284.  
  1285.                         1st parameter = color register 0 thru 15.
  1286.                         2nd parameter = color value 0 thru 9999,
  1287.                                         note that the ST only uses up
  1288.                                         to 1911, larger values may prove
  1289.                                         useful on STE.
  1290.  
  1291.  
  1292.  
  1293.  
  1294. 2 SET RANDOM FUNCTION RANGE  G#X 2,0,50:
  1295. ---------------------------
  1296.                              Sets the range of the numbers returned when the
  1297.                              'r' is used in place of constant value parameter
  1298.                               given to a IG command.  Above example sets r to
  1299.                               a range of 0 to 50.  The range value can be
  1300.                               from 0 up to 9999.
  1301.                               To use it in the line command
  1302.                               or any other like so: L 0,r,400,r:
  1303.                               another example with the & "loop" command:
  1304.                               G#s>0:X>2,0,639:P>0,0:& 0,128,1,0,D,2,r,r:
  1305.  
  1306.  
  1307. 3 RIGHT MOUSE BUTTON MACRO  G#X 3,2,1,1,30,C'mon Baby let's do the Twist!:
  1308. --------------------------
  1309.                            X 3 = command identifier
  1310.  
  1311.                            Set's a string of ANY characters to be transmitted
  1312.                            when the RIGHT mouse BUTTON is pressed. Intended
  1313.                            for pulling up a FUNCTION menu on a BBS, but could
  1314.                            be used to tell a MAINFRAME to TYPE a IG script
  1315.                            file for a POINT and CLICK navigation menu.
  1316.  
  1317.                            1st parameter = operation
  1318.  
  1319.                     Deactivate -->  if 1st parameter is 0 then
  1320.                                            mouse macro is shut off and
  1321.                                            no other parameters are to follow.
  1322.                                            example: X 3,0:
  1323.  
  1324.                     Reactivate -->  if 1st parameter is 1 then
  1325.                                            mouse macro is ON and requires
  1326.                                            a 2nd parameter to tell it whether
  1327.                                            or not to transmit a carriage
  1328.                                            return at the end of the string.
  1329.                                            examples:
  1330.                                            X 3,1,0:   =  no CR
  1331.                                            X 3,1,1:   =  send CR at end.
  1332.  
  1333.  LOAD with,activate,deactivate --> if 1st parameter is a 2 then a whole
  1334.                                           bunch  of parameters follow.
  1335.  
  1336.                                       2nd parameter cuts the mouse macro
  1337.                                           on or off. 0=off  1=on
  1338.  
  1339.                                       3rd parameter tells it whether or not
  1340.                                           to send a carriage return at the
  1341.                                           end of the string. 0=no  1=yes
  1342.  
  1343.                                       4th parameter is the length of the
  1344.                                           string in characters that the
  1345.                                           mouse macro will be sending, don't
  1346.                                           count the seperator at the end of
  1347.                                           the string.
  1348.  
  1349.                                       5th parameter is the string to send.
  1350.                                           it can contain any characters at
  1351.                                           all and has to be at least one
  1352.                                           character and not more than 80.
  1353.                                           At the end of the string a
  1354.                                           seperator is required anything can
  1355.                                           be used I suggest a : for good
  1356.                                           looks.
  1357.                                    examples below:
  1358.                                    X 3,2,1,1,3,m/a:
  1359.                                    X 3,2,1,1,5,f/L:
  1360.                                    X 3,2,1,1,1,?:
  1361.                                    X 3,2,1,1,25,c:\bin\type c:\ig\menu.ig:
  1362.  
  1363.  
  1364.  
  1365. 4  DEFINE and LOAD ZONE data   G#X 4,0,0,0,79,49,3,f/L:
  1366. ----------------------------
  1367.                              X 4 = command identifier
  1368.  
  1369.                              Defines a rectanglar area and associates a
  1370.                              string of characters with it, a ZONE.
  1371.                              The string is sent to the bbs by the
  1372.                              " < " command if the mouse option is
  1373.                              used.  This allows point and click operation of
  1374.                              remote systems.
  1375.  
  1376.             Zone ID  ->      1st parameter = zone number to define/load
  1377.                                  This is a number between 0-47.
  1378.  
  1379.     Define Rectangle ->      2nd parameter = upper left  corner X coordinate
  1380.                              3rd parameter = upper left  corner Y coordinate
  1381.                              4th parameter = lower right corner X coordinate
  1382.                              5th parameter = lower right corner Y coordinate
  1383.     Load string data ->      6th parameter = number of characters in string to
  1384.                                              transmit to bbs, maximum 80.
  1385.                              7th = the string itself with a ending : seperator,
  1386.                                    don't count the seperator as part of the
  1387.                                    string length required for parameter
  1388.                                    number 6.
  1389.  
  1390.  
  1391. 5 FLOW CONTROL SHUTDOWN     G#X 5,0:   or   G#X 5,1:
  1392. -----------------------
  1393.                             X 5 = command identifier
  1394.  
  1395.                             Back by request, no flow control.
  1396.  
  1397.                             Stops the IG terminal from sending
  1398.                             Control-S's  and Control-Q's  on
  1399.                             all commands.  This should be used with
  1400.                             caution.  It's good for issuing a short
  1401.                             pause " t " command and let the RS232 buffer
  1402.                             get ahead of the terminal, when the pause is
  1403.                             over a burst of speed will occur as the
  1404.                             terminal catches back up.  Data may be lost
  1405.                             this way so be careful.
  1406.  
  1407.                            1st parameter = flow control on/off
  1408.                                            1 = ON    0 = OFF
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414. 6 LEFT MOUSE BUTTON CR/LF   G#X 6,1:  or G#X 6,2: or G#X 6,0:
  1415. -------------------------
  1416.                             X 6 = command identifier
  1417.  
  1418.                             Activate / deactivate left MOUSE button
  1419.                             as a CARRIAGE RETURN and or Linefeed.
  1420.  
  1421.                        1st parameter =
  1422.                             0 = OFF normal mode, default
  1423.                             1 = ON as a CARRIAGE RETURN
  1424.                             2 = ON as a CARRIAGE RETURN with LINEFEED.
  1425.  
  1426.                        Note: This doesn't affect the < INPUT command's
  1427.                              mouse zone option either way.  It should
  1428.                              work ok with this active.  I wanted to
  1429.                              be able to leave my hand on the mouse and
  1430.                              hit the button to read the next message
  1431.                              while online and not have to mess with the
  1432.                              right mouse macro 'X 3'. You can just set the
  1433.                              mouse in your lap and click to read messages.
  1434.                              You probably wouldn't want this active with the
  1435.                              '?' ASK IG command.
  1436.  
  1437.  
  1438.  
  1439. ------------------------------------------------------------------------------
  1440.                             SOUND EFFECTS COMMAND
  1441.  
  1442. COMMAND IS:   G#b x:
  1443.  
  1444. x    Description
  1445. --------------------
  1446. 0    Alien Invasion                      These 19 sounds were added to IG
  1447. 1    Red Alert                           by: Kevin Moody & Anthony Rau.
  1448. 2    Gunshot
  1449. 3    Laser 1
  1450. 4    Jackhammer
  1451. 5    Teleport
  1452. 6    Explosion
  1453. 7    Laser 2
  1454. 8    Longbell
  1455. 9    Surprise
  1456. 10   Radio Broadcast
  1457. 11   Bounce Ball
  1458. 12   Eerie Sound
  1459. 13   Harley Motorcycle
  1460. 14   Helicopter
  1461. 15   Steam Locomotive
  1462. 16   Wave
  1463. 17   Robot Walk
  1464. 18   Passing Plane
  1465. .    .   .   .   .   .   .   .   .   .   .   .   .   .   .    .   .   .   .   .
  1466. 19   Landing                             These sounds and options added
  1467.                                          by Larry Mears 4-22-90.
  1468.  
  1469.  
  1470.  
  1471. ~~~~~~~~~~~~~~~~~~~~~~~
  1472. Sound Effects Utilities
  1473. -----------------------
  1474.  
  1475. ID  Description
  1476. -- --------------------------
  1477. 20  Alters Sound Effects 0-19
  1478.  
  1479.                                 Example:  alters sound effect
  1480.                                           number 7   " G#b 7: "
  1481.                                           G#b>20,1,7,12,1,30,0:
  1482.  
  1483.            breakdown of parameters:
  1484.  
  1485.            b 20,play_flag,snd_num,element_num,negative_flag,thousands,hundreds
  1486.  
  1487.  
  1488.                                    "The sounds in IG use GIST.
  1489.                                     GIST is the GI Sound Tool by:
  1490.  
  1491.                                     Synthetic Software
  1492.                                     880 Wisconsin Street
  1493.                                     San Francisco, CA 94107
  1494.                                     415-285-8832
  1495.  
  1496.                                     ANTIC was selling it.  If they aren't
  1497.                                     anymore contact Synthetic Software.
  1498.                                     Buy GIST and you can create all sorts
  1499.                                     of neat sounds that can be converted into
  1500.                                     IG loadable format.  Without GIST it's a
  1501.                                     shot in the dark. GIST let's you edit
  1502.                                     sounds with a graphics interface it's
  1503.                                     a great piece of software, buy it!"
  1504.  
  1505.                         Command  Identifier = b 20
  1506.                                     Let's you alter any sound effect.  The
  1507.                                     sound effects each have 56 elements that
  1508.                                     corespond exactly with the elements
  1509.                                     that GIST saves out in the '.C' file as
  1510.                                     a   " int array ".  You take the values
  1511.                                     in the GIST '.C' sound file and put them
  1512.                                     into IG one at a time with the b 20 command
  1513.                                     PARAMETER NUMBER 3.  If you don't have GIST
  1514.                                     you can play around with the  & LOOP and
  1515.                                     this command to come up with variations.
  1516.  
  1517.                         1st parameter = play_flag.  If this is anything other
  1518.                                         than 0, then the sound will be played
  1519.                                         with the new setting, otherwise it
  1520.                                         alters it but does not play.  Setting
  1521.                                         this flag to 1 is useful for using the
  1522.                                         & LOOP and running through a series of
  1523.                                         changes to hear what the effect
  1524.                                         your alteration has on the sound.
  1525.  
  1526.                         2nd parameter = snd_num.  This is the sound effect
  1527.                                         you wish to alter.  It can be any
  1528.                                         effect 0 to 19.
  1529.  
  1530.                         3rd parameter = element_num.  This tells which one of
  1531.                                         56 elements to alter in the sound
  1532.                                         effect's array  they are 0-55.
  1533.  
  1534.                         4th parameter = negative_flag.  If this is a 0 then
  1535.                                         the value changed in the effect will
  1536.                                         be positive, a 1 here or any number
  1537.                                         other than 0 will set the value in
  1538.                                         the sound effect array as a
  1539.                                         negative number.
  1540.  
  1541.                         5th parameter = thousands. This is a number from
  1542.                                         0 to 32 that is multiplied by 1000
  1543.                                         by IG internally  and added to the
  1544.                                         next parameter to make up the actual
  1545.                                         value that is stored into the element
  1546.                                         number specified by parameter 3.
  1547.  
  1548.                         6th parameter = hundreds.  The hundreds, tens, and ones
  1549.                                         of the value to be placed into the
  1550.                                         sound effect element specified by
  1551.                                         parameter 3.  You can exceed this and
  1552.                                         use 4 digits here, it just adds the
  1553.                                         5th and 6th parameters together to get
  1554.                                         a range of values from -32767 to
  1555.                                         +32767 that GIST requires.
  1556.  
  1557.  
  1558.                         PLEASE NOTE that sound effects 0-4 are looped by IG
  1559.                         internally 1000 times each for effect. It's like this
  1560.                         in basic FOR I=0 to 9999:SOUND_EFFECT:NEXT I   This
  1561.                         will give a different effect than you hear if you
  1562.                         are using the GIST sound editor so bear this in mind.
  1563.                         To transfer a whole new sound from GIST  ".C" format
  1564.                         this little IG command will have to be called 56 times.
  1565.                         Look in this ARC to see "IF" I wrote a GFA BASIC v2
  1566.                         GIST2IG.BAS converter. You could use a effect that was
  1567.                         close to the one you needed and only change a few
  1568.                         elements.  The & LOOP and this command should be able
  1569.                         to produce some amazing Sounds with some effort.
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575. 21  STOP ALL SOUND AT ONCE                   example:
  1576. --------------------------                   G#b>21:
  1577.  
  1578.                              command identifer = b 21:
  1579.  
  1580.                              Shuts off all sound effects that are being played.
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589. 22 RESTORE SOUND EFFECT                      example:
  1590. -----------------------                      G#b>22,19:
  1591.  
  1592.                              Command identifier = b 22
  1593.  
  1594.                                       Restores a sound effect to IG's default.
  1595.                                       Use to insure that a sound effect is what
  1596.                                       it should be or to restore after a
  1597.                                       alteration as a courtesy to your SYSOP
  1598.                                       and other IG users.  You can use the
  1599.                                       & LOOP to restore all the effects real
  1600.                                       fast.
  1601.  
  1602.                               1st parameter = sound effect number to restore.
  1603.                                               range is 0 to 19.
  1604.  
  1605.  
  1606. ---------------------------------------------------------------------------
  1607.  
  1608.  
  1609.  
  1610. ===================
  1611. END OF TEXT  G#I 0:
  1612.